The present application is related to digital video and more particularly to a video transport processor with single-threaded firmware.
Television content distribution is quickly migrating from analog formats to compressed digital formats. Currently, distribution of digital video content for television displays is dominated by use of the MPEG-2 video compression standard (ISO/IEC 13818-2). MPEG-2 and its predecessor MPEG-1 define standards to compress video content using a combination of various techniques to transform the video content into what is known as a video elementary stream.
The video elementary stream comprises a stream of compressed digital video data and is divided into segments that form the payload portion of data packets. The concatenation of the data packets form what is known as the Packetized Elementary Stream (PES). The packets forming the PES, known as PES packets, include a header in addition to the payload. The PES packet header includes a number of fields, including PES_length which indicates the length of the PES packet, and PES_header_length which indicates the PES packet header length.
The PES is then packetized into 188 byte MPEG transport packets. However, in the case of DirecTV™, the PES is packetized into 130 byte MPEG transport packets. The concatenation of the MPEG transport packets form the MPEG transport stream. A decoder receives and parses the MPEG transport stream. The decoder includes a video transport processor that parses the MPEG transport packets of the MPEG transport stream by extracting bytes from the MPEG transport packets.
The video transport processor is usually implemented as an embedded application specific integrated circuit (ASIC), wherein the functions are programmed into firmware. In order to extract bytes from the MPEG packets, the firmware needs to detect the MPEG transport packet boundaries. The variation in packet size makes parsing the MPEG transport packets difficult with single-threaded firmware. Additionally, the transport processor needs to detect other variable length boundaries, such as adaptation field size, private data size in adaptation field, PES packet size, PES payload size, PES header size, and Program Specific Information section size.
One possible solution is to maintain a software counter to count every byte extracted. The firmware can maintain counters to detect if the corresponding segments have been completely processed or not. After the transport processor consumes each byte from the MPEG transport packets, the transport processor checks and maintains the counters. However, the foregoing consumes considerable processing time and substantially increases the byte extraction cycle.
Accordingly, it would be desirable if byte boundaries could be detected without increasing the byte extraction cycle.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.